Method and Device to Control Communication with Multiple Networks Based on Respective Quality of Service Requirements

ABSTRACT

A network host device including a connection manager to communicate communication data with an external network over a plurality of bearers of the external network, an interface driver to provide an interface between the interface driver and the communication manager, the interface being dedicated to the external network, to receive processing data associated with the communication data over the interface, and to tag a packet of the processing data with identification information of the external network, and a traffic control unit to receive each packet of the processing data tagged with the identification information of the external network, and to select a bearer from among the plurality of hearers of the external network to communicate the communication data.

CROSS REFERENCE TO RELATED APPLICATION

This non-provisional application claims the benefit of U.S. ProvisionalApplication No. 61/562,196, filed Nov. 21, 2011, the contents of whichare herein incorporated by reference in their entirety.

FIELD OF THE INVENTION

The present application is directed to packet data networks (PDNs), andmore specifically to a system and a method that enables a host device tosupport multiple packet data networks (PDNs).

BACKGROUND OF THE INVENTION Background Art

Conventional network host devices operating in a network environment areable to support only one PDN at a given time. Further, theseconventional network host devices require the use of several dedicatedmodules that run and support the Internet protocol configurationprotocol (IPCP) over the network to configure an interface that isrequired to support the PDN. As such, the functionality to configure theinterface is distributed over several modules within the host device.However, the requirement to utilize several modules of the host deviceis undesirable because it greatly reduces the efficiency of the hostdevice. Further, the several modules have different characteristicswhich are incompatible with each other with respect to the configurationof the interface.

Therefore, there is a need for a system and a method that enables a hostdevice to support multiple PDNs at a given time based on respectivequality of service requirements, and to avoid the distribution of thefunctionality to configure the interfaces required to support themultiple PDNs over several modules within the host device.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an exemplary system including a host device capableof supporting multiple PDNs according to an embodiment of the presentdisclosure.

FIG. 2 illustrates another exemplary system including a host devicecapable of supporting multiple PDNs according to an embodiment of thepresent disclosure.

FIG. 3 illustrates another exemplary system including a host devicecapable of supporting multiple PDNs according to an embodiment of thepresent disclosure.

FIG. 4 illustrates an exemplary algorithm performed in a network deviceaccording to an embodiment of the present disclosure.

FIG. 5 illustrates another exemplary algorithm performed in a networkdevice according to an embodiment of the present disclosure.

FIG. 6 illustrates another exemplary algorithm performed in a networkdevice according to an embodiment of the present disclosure.

FIG. 7 illustrates an example computer system that can be used toimplement aspects of the present disclosure.

DETAILED DESCRIPTION

In the following description, numerous specific details are set forth inorder to provide a thorough understanding of the disclosure. However, itwill be apparent to those skilled in the art that the disclosureincluding structures, systems, and methods, may be practiced withoutthese specific details. The description and representation herein arethe common means used by those experienced or skilled in the art to mosteffectively convey the substance of their work to others skilled in theart. In other instances, well-known methods, procedures, components, andcircuitry have not been described in detail to avoid unnecessarilyobscuring aspects of the disclosure.

References in the specification to “one embodiment,” “an embodiment,”“an example embodiment,” etc., indicate that the embodiment describedmay include a particular feature, structure, or characteristic, butevery embodiment may not necessarily include the particular feature,structure, or characteristic. Moreover, such phrases are not necessarilyreferring to the same embodiment. Further, when a particular feature,structure, or characteristic is described in connection with anembodiment, it is submitted that it is within the knowledge of oneskilled in the art to effect such feature, structure, or characteristicin connection with other embodiments whether or not explicitlydescribed.

As described above, a conventional network host device is able tosupport only one PDN at a time, and involves the undesirabledistribution of the functionality to configure the interface acrossseveral modules of the network host device to run and support IPCP.Therefore, the following system enables a network host device to supportmultiple PDNs at a time and enables the configuration of interfacesassociated with the multiple PDNs without having to run and supportIPCP, as discussed below.

FIG. 1 illustrates a system 150 including a host device 100 connected tomultiple PDNs 101, 102, 103 according to an embodiment of the presentdisclosure. Each PDN is connected to the host device 100 via respectivebearers 111, 112, 113 which are used for bidirectional communication ofdata between the PDNs 101, 102, 103 and the host device 100. Inparticular, PDN1 101 is connected to the host device 100 via bearers111, PDN2 102 is connected to the host device 100 via bearers 112, andPDN3 103 is connected to the host device 100 via bearers 113.

The host device 100 includes a connection manager 104 and an integratedcircuit 110. The connection manager is connected to an applications unit107 which stores the applications to be run by the host device 100. Theintegrated circuit 110 further includes a memory 108, and a CPU1 120including a PDN classification unit 106 and an interface driver 105. Theinterface driver 105 is connected to the connection manager 104 viainterfaces 121, 122, 123. The integrated circuit 110 also includes aCPU2 140 which includes a traffic control unit 160. The traffic controlunit 160 includes a PDN bearer mapping unit 161, a quality of service(QOS) enforcement unit 162, an intra-PDN classification unit 163, and atimer 164. The interface driver 105 is connected to the intra-PDNclassification unit 163 via a queuing unit 130.

A PDN is an IP domain that the host device 100 is capable ofcommunicating with. A PDN can be the Internet, a corporate network, or aprivate network associated with the host device 100. A PDN can beidentified by an Access Point Name (APN). The host device 100 connectsto a PDN when the connection manager 104 detects a need for establishinga connection with a PDN and/or when an application stored in theapplications unit 107 is initiated and requests the connection manager104 to establish a connection with a PDN. Upon detecting a need or uponreceiving a request to connect with a PDN, the connection manager 104coordinates the necessary protocol-level handshake with the PDN andnegotiates a quality of service (QOS) with respect to communicationbetween the host device 100 and the PDN. The QOS enforcement unit 162stores these QOS requirements negotiated with the PDN. The QOSenforcement unit 162 also stores any updates or changes to the QOSrequirements. In addition, the connection manager 104 informs theintra-PDN classification unit 163 of the identity of the PDN and of adefault bearer that is to be used to communicate with the PDN. Theconnection manager 104 also manages the association of an initiatedapplication with a PDN and the communication between the initiatedapplication and the PDN. In one embodiment, once the manger associatesthe initiated application with PDN, the initiated application isconfigured to be able to communicate with the PDN by routing data backand forth without the involvement of the connection manager 104.

Now, upon connection with a PDN, the connection manager 104 requests theinterface driver 105 to expose an interface dedicated to the connectedPDN. In one embodiment, all processing of data associated with theconnected PDN by the integrated circuit 110 is conducted through theinterface dedicated to the connected PDN. For example, all processing ofdata associated with PDN1 101 by the integrated circuit 110 is conductedthrough the dedicated interface 121, all processing of data associatedwith PDN2 102 by the integrated circuit 110 is conducted through thededicated interface 122, and all processing of data associated with PDN3103 by the integrated circuit 110 is conducted through the dedicatedinterface 123. The PDN classification unit 106 monitors thecommunication between the connection manager 104 and the interfacedriver 105, and classifies or associates the exposed dedicatedinterfaces with their respective PDNs. In particular, based on thecommunication between the connection manager 104 and the interfacedriver 105, the PDN classification unit 106 associates the dedicatedinterface 121 with PDN1 101, associates the dedicated interface 122 withPDN2 102, and associates the dedicated interface 123 with PDN3 103.

In one embodiment, the interface driver 105 exposes interfaces that areInternet protocol (IP) interfaces. For example, the IP interfaces can beimplemented using an Ethernet connection between the connection manger104 and the interface driver 105. The characteristics and properties ofan exposed interface are based on parameters of the PDN to which theexposed interface is dedicated. Further, the characteristics and theproperties of the exposed interfaces are controllable to be dynamicallychanged to adapt to any changes to the parameters of the PDN. Theparameters of the PDN and any changes thereto can be provided by theconnection manager 104 to the interface driver 105. Specifically, theinterface driver 105 receives the PDN parameters and any changesthereto, and exposes a new interface having custom characteristics andproperties or adapts the characteristics and properties of an existinginterface based on the received PDN parameters.

When the host device 100 is connected to a plurality of PDNs, theinterface driver 105 is requested to expose a plurality of dedicatedinterfaces. The plurality of exposed interfaces are collectively knownas the stack of exposed interfaces. The host device 100 configures thestack of exposed interfaces 121, 122, 123 without the use of the network(for example, by running IPCP), as is done by conventional host devices.In one embodiment, the traffic control unit 160 is used to configure thestack of exposed interfaces 121, 122, 123. In particular, the trafficcontrol unit 160 configures the stack of exposed interfaces by managingthe exposing of a new interface (through the interface driver 105) inthe presence of existing exposed interfaces and the functioning of allthe exposed interfaces with respect to each other. In one embodiment,the traffic control unit 170 performs a discovery process every time anew interface is exposed without using the network. The neighbordiscovery process may include, for example, duplicate address detectionto ensure that a tentative address selected for a PDN is unique withrespect to an address selected for another PDN. The neighbor discoveryprocess may also include running of an address resolution protocol.Further, the neighbor discovery process may include a connectivitydetection to check the status of a connection to a PDN. The neighbordiscovery process is discussed in detail later on.

An application of the host device 100 connected to a PDN is ready tocommunicate data with the PDN once the traffic control unit 160 hasconfigured the stack of exposed interfaces. At this point, theconnection manager 104 connects and associates each exposed interface toa respective PDN, and this knowledge is made available to the PDNclassification unit 106. As such, multiple PDNs 101, 102, 103 cansimultaneously be connected to and communicated with via the host device100. That is, the host device 100 is capable of supporting multiple PDNsat a given time. Further, each PDN 101, 102, 103 has multiple respectivebearers 111, 112, 113 which are used for bidirectional communication ofdata between each PDN 101, 102, 103 and the host device 100. In oneembodiment, the connection manager 104 assigns one of the interfacesexposed by the interface driver 105 as a default interface. The defaultinterface is used for communication of processing data associated withdefault packet data that is to be transmitted to a PDN, the defaultpacket data being generated by an application which is unknown to thePDN.

Now, during simultaneous communication with multiple PDNs, theconnection manager 104 is required to determine a destination PDN towhich a piece of data (e.g., generated by an application of the hostdevice) is to be routed. This process to determine the destination PDNis called inter-PDN classification. Further, once the destination PDNhas been determined, the connection manager 104 is required to determinewhich one of the multiple bearers of the destination PDN is to be usedto communicate the data based on the negotiated quality of service withthe destination PDN. This process to determine the bearer forcommunication is called intra-PDN classification. To satisfy the QOSrequirements negotiated with the PDNs, both the inter-PDN classificationprocess and the intra-PDN classification process should be completed, asdiscussed below.

The inter-PDN classification process performed by the host device 100will now be explained. When data is received from one of the multiplePDNs 101, 102, 103 at the host device 100, the connection manager 104transfers the received data to the respective interface associated orconnected to the one of the multiple PDNs. Further, the interface driver105 identifies the PDN that provided the received data based on theinterface through which it receives the received data and based on theinformation available from the PDN classification unit 106. Now, when anapplication of the host device 100 generates data to be communicated toa particular PDN, the communication manager transfers the generated datato the interface driver 105 through the interface dedicated to theparticular PDN. The interface driver 105 then identifies the particularPDN, to which the generated data is to be communicated, based on theinterface to which it receives the generated data and based on theinformation available from the PDN classification unit 106. Once theinterface driver 105 has identified the destination PDN, thisidentification of the destination PDN is provided to the intra-PDNclassification unit 163. This enables the intra-PDN classification unitto carry out the intra-PDN classification process to determine which oneof the multiple bearers of the destination PDN is to be used tocommunicate the data to the destination PDN.

The interface driver 105 uses the queuing unit 130 to provide theidentification of the destination PDN to the intra-PDN classificationunit 163. In particular, the interface driver 105 tags each packet ofthe received data or the generated data with identification informationof the destination PDN, and transfers the tagged packets to theintra-PDN classification unit 163 via the queuing unit 130. The queuingunit 130 includes modules that allow and/or guarantee preservation ofthe identification information tagged on to each packet of the receiveddata or the generated data that is being transferred from the interfacedriver 105 to the intra-PDN classification unit 163. The use of modulesthat allow and/or guarantee preservation of the identificationinformation is important because otherwise the identificationinformation may be lost during the transfer of the tagged packet data.In particular, sometimes, when data is communicated between two separateprocessors (120 and 140) which use different modules, the queuing unit130 may use mutually incompatible modules to transfer the tagged packetdata, and therefore, preservation of the identification information isnot guaranteed. In such situations, the identification information canbe lost during the transfer of the tagged packet data. As such, it isdesirable that the queuing unit 130 ensure that only those modules whichallow and/or guarantee the preservation of the identificationinformation are used in the transfer of the tagged packet data.

The tagging of each packet of the data will now be explained. Asdescribed above, the connection manager 104 transfers packet datareceived from one of the multiple PDNs (destination PDN) or thegenerated packet data received from an initiated application to theinterface driver 105 over a respective interface associated with thedestination PDN. The interface driver 105 identifies the destination PDNbased on the respective interface over which the packet data is receivedfrom the connection manager 104. Once the interface driver 105 hasidentified the destination PDN, the interface driver 105 tags eachpacket of the packet data with identification information of thedestination PDN. For example, each packet of the packet data includes aheader, and the interface driver 105 includes the identificationinformation of the destination PDN in the header of each packet. Theinterface driver 105 then transfers each tagged packet of the packetdata to the intra-PDN classification unit 163 via the queuing unit 130.

In one embodiment, the interface driver 105 generates a respectivedescriptor associated with each packet of the received packet data orthe generated packet data. The interface driver 105 then stores thepackets of the received/generated packet data in the memory 108, andtags each of the descriptors with the identification information of thedestination PDN before transferring each of the tagged descriptors tothe intra-PDN classification unit 163 via the queuing unit 130. In oneembodiment, the interface driver modifies a text-entry portion of thedescriptor to include the identification information of the destinationPDN. Further, the interface driver 105 may generate the descriptorincluding a pointer that indicates a location of the correspondingpacket of received/generated packet data stored in the memory 108.Additionally or optionally, the interface driver 105 may store theidentification information of the destination PDN in the memory 108. Inthis embodiment, the pointer included in the descriptor may indicate theidentity of the destination PDN by pointing to the location in thememory 108 where the identification information of the destination PDNis stored. One will appreciate that transferring the descriptorsobviates the need to tag and transfer each packet of the packet data,which could be a more memory intensive task. Further, each descriptor iscapable of storing specific information about the corresponding packetof data such as length of the packet, type of the packet data (voice,text, etc.), and the like. This specific information is used by theintra-PDN classification unit 163 to carry out the above-describedintra-PDN classification process.

In another exemplary embodiment, as shown in FIG. 2, the queuing unit130 can be implemented as multiple queuing units 131, 132, 133, eachqueuing unit being dedicated to each interface exposed by the interfacedriver 105. Further, each queuing unit 131, 132, 133 is configured torun its own scheme of ordering the packet data (or descriptors). Now,since each exposed interface is dedicated to a particular PDN, eachqueuing unit from among the multiple queuing units 131, 132, 133 is alsodedicated to a particular PDN. Therefore, a given queuing unit fromamong the multiple queuing units 131, 132, 133 always transfers data (ordescriptors) associated with a given PDN from among the multiple PDNs.In this way, data (or descriptors) associated with a plurality of PDNscan be simultaneously transferred to the intra-PDN classification unit163, thereby increasing overall efficiency. Further, since each queuingunit from among the multiple queuing units 131, 132, 133 alwaystransfers the received/generated packet data (or descriptors) associatedwith a given PDN from among the multiple PDNs, the intra-PDNclassification unit 163 can be configured to identify the destinationPDN based on the queuing unit through with the received/generated packetdata (or descriptors) is received. In this case, the tagging of eachdata packet (or descriptor) could be avoided.

The intra-PDN classification process performed by the host device 100will now be explained. As discussed above, the interface driver 105 tagseach packet (or descriptor) of the received/generated packet data withidentification information of the destination PDN, and transfers thetagged packets (or descriptors) to the intra-PDN classification unit 163via the queuing unit 130. The intra-PDN classification unit isconfigured to select a data packet (or descriptor) from among aplurality of packets (or descriptors) in a queue of the queuing unit 130based on QOS requirements of a PDN associated with the packet (ordescriptor) or based on characteristics of packet data such as, forexample, the specific information included in the descriptors, n theembodiment including the multiple queuing units 131, 132, 133, theintra-PDN classification unit can be configured to select a data packet(or descriptor) from among a plurality of packets (or descriptors) basedon an ordering scheme of the respective queuing unit from among themultiple queuing units 131, 132, 133.

The intra-PDN classification unit 163 stores a traffic flow template(TFT) associated with each PDN. A traffic flow template enables theintra-PDN classification unit 163 to determine which bearer from amongthe multiple bearers of a given PDN is to be used for communication withthe given PDN, in addition, the intra-PDN classification unit 163determines the bearer for communication based on the QOS requirementsnegotiated with the given PDN and stored in the QOS enforcement unit162. Additionally or optionally, the intra-PDN classification unit 163may determine the bearer for communication used on information (e.g.,specific information) included in the tagged packet data or taggeddescriptors. The QOS requirements stored in the QOS enforcement unit 162are, for example, associated with an amount of traffic of data on eachbearer from among the multiple bearers associated with each PDN. Oncethe intra-PDN classification unit 163 has determined the bearer forcommunication with the given PDN, the intra-PDN classification unit 163references the bearer mapping information stored in the PDN bearermapping unit 161 and informs the interface driver 105 of the mappinginformation of the determined bearer. The interface driver 105 thencoordinates with the connection manager 104 to communicate data to thegiven PDN over the determined bearer.

In one embodiment, for enhanced efficiency, the intra-PDN classificationunit 163 satisfies the QOS requirements negotiated with a given PDN bybalancing parameters associated with the communication of data betweenthe host device 100 and given PDN. For example, the intra-PDNclassification unit 163 balances the data rate through a given bearerwith an allowable jitter requirement, thereby increasing overallefficiency. Further, the intra-PDN classification unit 163 balances acheck level discard timer 164 associated with a given bearer to satisfythe QOS requirements and also to arrive at the allowable jitterrequirement. In one embodiment, the check level discard timer 164 startsrunning once the packet data or a descriptor of the packet data arrivesat the intra-PDN classification unit 163, and runs for a predeterminedduration of time within which the intra-PDN classification processshould be completed. Finally, the intra-PDN classification unit 163 mayuse a token bucket algorithm to check whether the data communicationthrough the bearers conforms to the QOS requirements stored in the QOSenforcement unit 162.

The neighbor discovery process will now be explained. First, theduplicate address detection procedure included in the neighbor discoveryprocess will be described with reference to FIG. 3. FIG. 3 illustrates asystem 350 including the host device 100 connected to multiple the PDNs101, 102, 103 via respective PDN gateways 301, 302, 303. The remainingfeatures of the system 350 are analogous to the features of the system150, and therefore, a detailed discussion of these features is beingomitted. In system 350, the host device 100 is connected to PDNs 101,102, 103 via respective PDN gateways 301, 302, 303. For example, theconnection manager 104 of the host device 100 is connected to PDN1 viaPDN1 gateway 301, to PDN2 via PDN2 gateway 302, and to PDN3 via PDN3gateway 303. As such, the host device 100 may simultaneously communicatewith the PDNs 101, 102, 103 via respective PDN gateways 301, 302, 303.Further, the host device 100 may communicate with another host deviceconnected to one of the PDNs 101, 102, 103.

Now, a conventional host device is required to perform a cumbersomeprocess of neighbor solicitation when the conventional host device isconnected to a given PDN, and is communicating with another conventionalhost device connected to the given PDN. In particular, the conventionalhost device is required to choose a network address to identify itselfto the given PDN, and further to advertise the chosen network addressover the given PDN to ensure that no other host device connected to thegiven PDN is using the same chosen network address. That is, theconventional host device is required to conduct the cumbersome processof neighbor solicitation to ensure uniqueness of its chosen networkaddress. Further, the conventional host device is required to conductadditional processing to identify an intermediate node (e.g., a basestation using a radio link) to which a piece of data will be initiallytransmitted to when the conventional host device wishes to transmit thepiece of data to the another conventional host device. The conducting ofthese processes adversely affects the efficiency of the conventionalhost device. Further, the advertising of the chosen network address overthe given PDN unnecessarily burdens traffic of data over the given PDN.

The present disclosure obviates the need for the host device 100 toconduct the above cumbersome processes and also reduces the traffic overa PDN by connecting the host device 100 to the PDNs via respective PDNgateways. In one embodiment, when the interface driver 105 provides aninterface (e.g., IP interface 121) to be dedicated to a PDN (e.g.,PDN1), the interface driver 105 is configured to assign a networkaddress to the provided interface, and to inform the assigned networkaddress to the connection manager 104. The connection manager 104 thenprovides the assigned network address to the PDN1 gateway 301 over anetwork link. The PDN1 gateway 301 recognizes the host device 100 asbeing a unique device based on this network link because the host device100 is the only host device connected to the PDN1 gateway 301 over thisnetwork link. In one embodiment, the PDN1 gateway 301 assigns a globalnetwork address to the host device 100 based on this network link. Theglobal network address may include the network address assigned by theinterface driver 105 or a modified version of the same. In this way, thehost device 100 is provided with a unique global network address withrespect to PDN1 101. Now, the host device 100 only needs to providedestination information of the another host to which data is to betransmitted without having to conduct any neighbor solicitation. ThePDN1 gateway 301 then resolves the path through which the transmitteddata is to be routed so that the transmitted data reaches the anotherhost. In one embodiment, the PDN1 gateway 301 includes the globalnetwork address of the host device 100 in the information sent alongwith the transmitted data. In this way, the host device 100 is notrequired to conduct the cumbersome process of neighbor solicitation orof identifying the above-mentioned intermediate node. In one embodiment,the host device 100 may communicate with all other host devicesconnected to PDN1 101 only via the PDN1 gateway 301. In the aboveembodiment, it is not necessary that the another host device beconnected to PDN1 101. Rather, the another host device can be connectedto any PDN, the path to which is resolved by the PDN1 gateway 301. PDNgateways 302 and 303 function in a similar way to the above exemplaryfunctioning of PDN gateway 301.

In another embodiment, when the host device 100 is required to receive aresponse ensuring the uniqueness of the network address beforecommunicating through a given PDN, the connection manager 104 isconfigured to generate a fake response indicating the uniqueness of thenetwork address assigned by the interface driver 105, and to communicatethe fake response to the interface driver 105. This allows the hostdevice 100 to communicate through the given PDN without advertising thechosen network address over the given PDN to ensure uniqueness of thesame. In one embodiment, the network address of the interface 121 couldbe an IPv6 address. In one embodiment, the network link could be awireless network link.

The running of an address resolution protocol included in the neighbordiscovery process will now be explained. For the host device 100 to beable to communicate with a destination host (beyond PDN-Gateway), thehost device 100 needs to know the next-hop neighbor's link-layer addressto which the data may be routed. For example, when the host device 100uses an Ethernet device/interface, the host device 100 needs to know aEthernet MAC address (e.g. 48 bit address) of the destination hostdevice that the host device 100 should address its Ethernet packets to.Alternatively, when the host device 100 uses an LTE interface, the hostdevice 100 can remove the Ethernet header before sending any uplinkpacket, and therefore the exact value of the advertised link-layeraddress for the destination host device IP address is not required.Rather, the host device 100 simply routes any uplink packet to the PDNgateway associated with the destination host, and the PDN gatewayresolves the path to the destination host. In one embodiment, for thisreason, when the traffic control module receives the neighborsolicitation message requesting for a link-layer address of thedestination host, the traffic control module may respond with a neighboradvertisement message including an arbitrary Ethernet address.

The connectivity detection procedure included in the neighbor discoveryprocess will now be explained when the host device 100 operates using,for example, the IPv6 protocol. Conventionally, the host device 100would have to perform the IPv6 un-reachability detection to check theavailability of another IPv6 device connected on the same link to a PDNas the host device 100, so as to ensure uniqueness and security ofcommunication. However, in the present disclosure, the host device 100is connected to a PDN via a PDN gateway, and the host device 100 is theonly device connected to the PDN gateway on a given link. In particular,a link between the host device and a PDN gateway has no other hostdevices connected to the link. Therefore, it is not necessary for thehost device 100 to perform the un-reachability detection describedabove. As such, there is no need to forward the un-reachabilitydetection messages to the PDN gateway. However, since the IPv6 protocolrequires a received response at the host device 100 to ensureuniqueness, the connection manager 104 and/or the interface driver 105can generate un-reachability detection messages and transmit the same tothe traffic control module. In response, the traffic control moduleresponds to the un-reachability detection messages within the hostdevice 100 without sending the messages to the PDN gateway.

In one embodiment, the integrated circuit 110 can be external to thehost device 100 and can be communicatively connected to the host device100, for example, via an IP interface. For example, the integratedcircuit 110 can be communicatively connected to the host device 100 viaa USB connection or via an SDIO connection. The host device 100 could bea handheld device such as a cellular phone, PDA, or the like. Further,the host device 100 could be compatible with many networks includingLTE, 2G, 3G, or the like.

FIG. 4 illustrates an exemplary algorithm performed in a network devicefor communicating data with an external network over a plurality ofbearers associated with the external network according to an embodimentof the present disclosure. One of ordinary skill in the art wouldappreciate that performing a subset of the disclosed steps is within thescope of the present disclosure. In step 401, the network deviceconnects to an external network. In step 402, the network devicenegotiates a quality of service (QOS) requirement related tocommunication with the external network. In step 403, the network devicestores an application that is capable of communicating with the externalnetwork. In step 404, the network device provides an interface dedicatedto the external network. In step 405, processing data associated withcommunication over the interface is received, in step 406, the networkdevice tags a packet of the processing data with identificationinformation of the external network. In one embodiment, the networkdevice identifies or generates the identification information of theexternal network based on the interface over which the processing dataassociated with the external network is received. In step 407, thenetwork device selects a bearer from among the plurality of bearersbased on the identification information tagged on the packet and/orbased on the negotiated QOS requirement, to communicate with theexternal network.

FIG. 5 illustrates another exemplary algorithm performed in a networkdevice for communicating data with an external network over a pluralityof bearers associated with the external network according to anembodiment of the present disclosure. One of ordinary skill in the artwould appreciate that performing a subset of the disclosed steps iswithin the scope of the present disclosure. In step 501, the networkdevice connects to an external network. In step 502, the network devicenegotiates a quality of service (QOS) requirement related tocommunication with the external network. In step 503, the network devicestores an application that is capable of communicating with the externalnetwork. In step 504, the network device provides an interface dedicatedto the external network. In step 505, processing data associated withcommunication over the interface is received. In step 506, the networkdevice generates a descriptor associated with a packet of the processingdata. In step 507, the network device tags the generated descriptor withidentification information of the external network. In one embodiment,the network device identifies and/or generates the identificationinformation of the external network based on the interface over whichthe processing data associated with the external network is received. Instep 508, the network device selects a bearer from among the pluralityof bearers based on the identification information tagged on thedescriptor and/or based on the negotiated QOS requirement, tocommunicate with the external network.

FIG. 6 illustrates an exemplary algorithm performed by the networkdevice while providing an interface dedicated to the external network.In one embodiment, the network device provides the interface dedicatedto the external network without running the Internet protocolconfiguration protocol (IPCP). In step 601, the network device providesthe interface with a characteristic based on a parameter associated withthe external network, and in step 602, the network device dynamicallyadjusts the characteristic of the interface with a change in theparameter associated with the external network. It should be noted thatthe exemplary algorithms discussed in the present disclosure can beperformed by the hardware components of the devices (e.g., host device100) discussed in the present disclosure.

It will be apparent to persons skilled in the relevant art(s) thatvarious elements, features, and functions (e.g., steps) of the presentdisclosure can be implemented in hardware using analog and/or digitalcircuits, in software, through the execution of instructions by one ormore general purpose or special-purpose processors, or as a combinationof hardware and software, via the general purpose computer. For example,various functions of at least the host device can be implemented by oneor more general purpose or special-purpose processors, and/or as acombination of hardware and software, via the general purpose computer.

The following description of a general purpose computer system isprovided for the sake of completeness. Embodiments of the presentdisclosure can be implemented in hardware, or as a combination ofsoftware and hardware. Consequently, embodiments of the disclosure maybe implemented in the environment of a computer system or otherprocessing system. An example of such a computer system 700 is shown inFIG. 7. One or more of the features depicted in FIGS. 1-6 (e.g.,communication manager 104, interface driver 105, traffic control module160, PDN gateway 301, etc.) and their corresponding algorithms can beexecuted on one or more distinct computer systems 700, or a portionthereof. Furthermore, any functions performed by any of the abovefeatures can be implemented on one or more distinct computer systems700.

A computer system 700 includes one or more processors, such as processor704. Processor 704 can be a special purpose or a general purpose digitalsignal processor. Processor 704 is connected to a communicationinfrastructure 702 (for example, a bus or network). Various softwareimplementations are described in terms of this exemplary computersystem. After reading this description, it will become apparent to aperson skilled in the relevant art(s) how to implement the disclosureusing other computer systems and/or computer architectures.

Computer system 700 also includes a main memory 706, preferably randomaccess memory (RAM), and may also include a secondary memory 708.Secondary memory 708 may include, for example, a hard disk drive 710and/or a removable storage drive 712, representing a floppy disk drive,a magnetic tape drive, an optical disk drive, or the like. Removablestorage drive 712 reads from and/or writes to a removable storage unit716 in a well-known manner Removable storage unit 716 represents afloppy disk, magnetic tape, optical disk, or the like, which is read byand written to by removable storage drive 712. As will be appreciated bypersons skilled in the relevant art(s), removable storage unit 716includes a computer usable storage medium having stored therein computersoftware and/or data.

In alternative implementations, secondary memory 708 may include othersimilar means for allowing computer programs or other instructions to beloaded into computer system 700. Such means may include, for example, aremovable storage unit 718 and an interface 714. Examples of such meansmay include a program cartridge and cartridge interface (such as thatfound in video game devices), a removable memory chip (such as an EPROM,or PROM) and associated socket, a thumb drive and USB port, and otherremovable storage units 718 and interfaces 714 which allow software anddata to be transferred from removable storage unit 718 to computersystem 700.

Computer system 700 may also include a communications interface 720.Communications interface 720 allows software and data to be transferredbetween computer system 700 and external devices. Examples ofcommunications interface 720 may include a modem, a network interface(such as an Ethernet card), a communications port, a PCMCIA slot andcard, etc. Software and data transferred via communications interface720 are in the form of signals which may be electronic, electromagnetic,optical, or other signals capable of being received by the host device100. These signals are provided to communications interface 720 via acommunications path 722. Communications path 722 carries signals and maybe implemented using wire or cable, fiber optics, a phone line, acellular phone link, an RF link and other communications channels.

As used herein, the terms “computer program medium” and “computerreadable medium” are used to generally refer to tangible storage mediasuch as removable storage units 716 and 718 or a hard disk installed inhard disk drive 710. These computer program products are means forproviding software to computer system 700.

Computer programs (also called computer control logic) are stored inmain memory 706 and/or secondary memory 708. Computer programs may alsobe received via communications interface 720. Such computer programs,when executed, enable the computer system 700 to implement the presentdisclosure as discussed herein. In particular, the computer programs,when executed, enable processor 704 to implement the processes of thepresent disclosure, such as any of the methods described herein.Accordingly, such computer programs represent controllers of thecomputer system 700. Where the disclosure is implemented using software,the software may be stored in a computer program product and loaded intocomputer system 700 using a removable storage drive 712, interface 714,or communications interface 720.

In another embodiment, features of the disclosure are implementedprimarily in hardware using, for example, hardware components such asapplication-specific integrated circuits (ASICs) and gate arrays.Implementation of a hardware state machine so as to perform thefunctions described herein will also be apparent to persons skilled inthe relevant art(s).

Conclusion

It is to be appreciated that the Detailed Description section, and notthe Summary and Abstract sections, is intended to be used to interpretthe claims. The Summary and Abstract sections may set forth one or morebut not all exemplary embodiments of the present invention ascontemplated by the inventor(s), and thus, are not intended to limit thepresent invention and the appended claims in any way.

The present invention has been described above with the aid offunctional building blocks illustrating the implementation of specifiedfunctions and relationships thereof. The boundaries of these functionalbuilding blocks have been arbitrarily defined herein for the convenienceof the description. Alternate boundaries can be defined so long as thespecified functions and relationships thereof are appropriatelyperformed.

The foregoing description of the specific embodiments will so fullyreveal the general nature of the invention that others can, by applyingknowledge within the skill of the art, readily modify and/or adapt forvarious applications such specific embodiments, without undueexperimentation, without departing from the general concept of thepresent invention. Therefore, such adaptations and modifications areintended to be within the meaning and range of equivalents of thedisclosed embodiments, based on the teaching and guidance presentedherein. It is to be understood that the phraseology or terminologyherein is for the purpose of description and not of limitation, suchthat the terminology or phraseology of the present specification is tobe interpreted by the skilled artisan in light of the teachings andguidance.

It should be noted that any exemplary processes described herein can beimplemented in hardware, software, or any combination thereof. Forinstance, the exemplary process can be implemented using computerprocessors, computer logic, application specific circuits (ASICs),digital signal processors (DSP), etc., as will be understood by one ofordinary skill in the arts based on the discussion herein.

Moreover, any exemplary processes discussed herein can be embodied by acomputer processor or any one of the hardware devices listed above. Thecomputer program instructions cause the processor to perform theprocessing functions described herein. The computer program instructions(e.g., software) can be stored in a computer useable medium, computerprogram medium, or any storage medium that can be accessed by a computeror processor. Such media include a memory device such as a computer diskor CD ROM, or the equivalent. Accordingly, any computer storage mediumhaving computer program code that causes a processor to perform theprocessing functions described herein are with the scope and spirit ofthe present invention.

The breadth and scope of the present invention should not be limited byany of the above-described exemplary embodiments, but should be definedonly in accordance with the following claims and their equivalents.

What is claimed is:
 1. A network host device, comprising: a connectionmanager configured to communicate communication data with an externalnetwork over a plurality of bearers of the external network; aninterface driver configured to provide an interface between theinterface driver and the communication manager, the interface beingdedicated to the external network, to receive processing data associatedwith the communication data over the interface, and to tag a packet ofthe processing data with identification information of the externalnetwork; and a traffic control unit configured to receive the packet ofthe processing data tagged with the identification information of theexternal network, and to select a bearer from among the plurality ofbearers based on the identification information tagged on the packet. 2.The network host device of claim 1, wherein the connection manager isconfigured to negotiate a quality of service (QOS) requirementassociated with communication between the host device and the externalnetwork, and the traffic control unit is configured to select the bearerfrom among the plurality of bearers based on the negotiated QOSrequirement.
 3. The network host device of claim 1, further comprising:a queuing unit configured to transfer the packet of the processing datatagged with identification information of the external network from theinterface driver to the classification unit, and to preserve the taggedidentification information during the transfer.
 4. The network hostdevice of claim 3, wherein the queuing unit is configured to bededicated to transfer processing data that is associated with theexternal network.
 5. The network host device of claim 1, furthercomprising: an application unit configured to store an application thatgenerates the processing data, the application configured to be incommunication with the external network.
 6. The network host device ofclaim 1, wherein the interface driver is configured to provide theinterface having a characteristic based on a parameter associated withthe external network, and to dynamically adjust the characteristic ofthe interface with a change in the parameter.
 7. The network host deviceof claim 1, wherein the interface driver is configured to identify theexternal network based on the interface over which the processing datais received.
 8. The network host device of claim 1, wherein theinterface driver is configured to generate a descriptor associated withthe packet of the processing data, and to tag the descriptor with theidentification information of the external network, and the trafficcontrol unit is configured to select a bearer from among the pluralityof bearers of the external network to communicate the communication databased on the identification information tagged on the descriptor.
 9. Thenetwork host device of claim 1, wherein the interface driver and thetraffic control unit are detachable from the host device.
 10. Thenetwork host device of claim 1, wherein the interface driver isconfigured to provide the interface between the interface driver and thecommunication manager without running the Internet protocolconfiguration protocol (IPCP).
 11. A method for communicatingcommunication data with an external network over a plurality of bearersof the external network, the method comprising: providing, in a networkdevice, an interface dedicated to the external network; receiving, inthe network device, processing data associated with communication dataover the interface; tagging, in the network device, a packet of theprocessing data with identification information of the external network;and selecting, in the network device, a bearer from among the pluralityof bearers of the external network based on the identificationinformation.
 12. The method of claim 11, further comprising: negotiatinga quality of service (QOS) requirement associated with communicationwith the external network, wherein the selecting the bearer includesselecting the bearer from among the plurality of bearers based on thenegotiated QOS requirement.
 13. The method of claim 11, wherein thetagging includes transferring the packet of the processing data taggedwith the identification information of the external network within thenetwork device while preserving the tagged identification informationduring the transferring.
 14. The method of claim 13, wherein thetransferring the packet of the processing data includes transferring thepacket of the processing data via a queue dedicated to transferprocessing data associated with the external network.
 15. The method ofclaim 11, further comprising: storing an application that generates theprocessing data, the application being configured to be in communicationwith the external network.
 16. The method of claim 11, wherein theproviding the interface comprises: providing the interface having acharacteristic based on a parameter associated with the externalnetwork, and dynamically adjusting the characteristic of the interfacewith a change in the parameter.
 17. The method of claim 11, wherein thetagging includes identifying the external network based on the interfaceover which the processing data is received.
 18. The method of claim 11,the tagging comprises: generating a descriptor associated with thepacket of the processing data; and tagging the descriptor with theidentification information of the external network, wherein theselecting the bearer includes selecting the bearer from among theplurality of bearers based on the identification information tagged onthe descriptor.
 19. The method of claim 11, wherein the providing theinterface includes providing the interface without running the InternetProtocol configuration protocol (IPCP).
 20. A method for communicatingcommunication data with an external network over a plurality of bearersof the external network, the method comprising: connecting to anexternal network; negotiating, in a network device, a quality of service(QOS) requirement related to communication with the external network;providing, in the network device, an interface dedicated to the externalnetwork; receiving, in the network device, processing data associatedwith communication data over the interface; generating, in the networkdevice, identification information of the external network based on theinterface over which the processing data is received; generating, in thenetwork device, a descriptor associated with a packet of processingdata; tagging, in the network device, the descriptor with theidentification information of the external network; and selecting, inthe network device, a bearer from among the plurality of bearers tocommunicate the communication data based on the identificationinformation tagged on the descriptor and based on the negotiated QOSrequirement.